/**
 */
package ServicePIM;

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>RES Tful Service PIM</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasResourceModel <em>Has Resource Model</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasResourceModelManager <em>Has Resource Model Manager</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasResourceController <em>Has Resource Controller</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasResourceControllerManager <em>Has Resource Controller Manager</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasAlgoResourceModel <em>Has Algo Resource Model</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasAlgoResourceController <em>Has Algo Resource Controller</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasRDBMSTable <em>Has RDBMS Table</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getHasDatabaseController <em>Has Database Controller</em>}</li>
 *   <li>{@link ServicePIM.RESTfulServicePIM#getName <em>Name</em>}</li>
 * </ul>
 * </p>
 *
 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM()
 * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='controllersHaveUniqueURIs uniqueResourceModels uniqueResourceModelManagers uniqueResourceAlgoModels uniqueResourceControllers uniqueResourceControllerManagers uniqueResourceAlgoControllers uniquePIMComponentNames uniqueRModelRDBMSTableMapping validDatabaseReferentialIntegrity correctlyMatchingRControllerCRUDActivitiesWithRDBMSActivities correctlyMatchingRCManagerCRUDActivitiesWithRDBMSActivities rCManagerCreateActivityAddsReadHypermediaLinkToRRController rCManagerCreateActivityAddsUpdateHypermediaLinkToRRController rCManagerCreateActivityAddsDeleteHypermediaLinkToRRController rCManagerReadActivityAddsReadHypermediaLinkToRRController rCManagerReadActivityAddsUpdateHypermediaLinkToRRController rCManagerReadActivityAddsDeleteHypermediaLinkToRRController rCManagerCreateActivityAddsReadHypermediaLinkToParentRController rCManagerCreateActivityAddsUpdateHypermediaLinkToParentRController rCManagerCreateActivityAddsDeleteHypermediaLinkToParentRController rCManagerReadActivityAddsReadHypermediaLinkToParentRController rCManagerReadActivityAddsUpdateHypermediaLinkToParentRController rCManagerReadActivityAddsDeleteHypermediaLinkToParentRController rControllerReadActivityAddsCreateHypermediaLinkToRCManager rControllerReadActivityAddsReadHypermediaLinkToRCManager rControllerUpdateActivityAddsCreateHypermediaLinkToRCManager rControllerUpdateActivityAddsReadHypermediaLinkToRCManager rControllerReadActivityAddsCreateHypermediaLinkToParentRCManager rControllerReadActivityAddsReadHypermediaLinkToParentRCManager rControllerUpdateActivityAddsCreateHypermediaLinkToParentRCManager rControllerUpdateActivityAddsReadHypermediaLinkToParentRCManager rControllerDeleteActivityAddsCreateHypermediaLinkToParentRCManager rControllerDeleteActivityAddsReadHypermediaLinkToParentRCManager algoControllerActivityAddsHypermediaLinkToRAlgoController algoControllerAddsHypermediaLinkToParentAlgoController rControllerReadAddsHypermediaLinkToRAlgoController rControllerUpdateAddsHypermediaLinkToRAlgoController algoControllerAddsReadHypermediaLinkToParentRController algoControllerAddsUpdateHypermediaLinkToParentRController algoControllerAddsDeleteHypermediaLinkToParentRController'"
 *        annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot controllersHaveUniqueURIs='self->isUnique(Bag{self.hasResourceController.controllerURI, self.hasResourceControllerManager.controllerURI, self.hasAlgoResourceController.controllerURI})' uniqueResourceModels='self.hasResourceModel->isUnique(name)' uniqueResourceModelManagers='self.hasResourceModelManager->isUnique(name)' uniqueResourceAlgoModels='self.hasAlgoResourceModel->isUnique(name)' uniqueResourceControllers='self.hasResourceController->isUnique(name)' uniqueResourceControllerManagers='self.hasResourceControllerManager->isUnique(name)' uniqueResourceAlgoControllers='self.hasAlgoResourceController->isUnique(name)' uniquePIMComponentNames='self->isUnique(Bag{self.hasResourceModel.name, self.hasResourceController.name, self.hasResourceModelManager.name, self.hasResourceControllerManager, self.hasAlgoResourceModel.name, self.hasAlgoResourceController.name})' uniqueRModelRDBMSTableMapping='self.hasResourceModel->forAll(rModel1, rModel2 | rModel1.name <> rModel2.name implies rModel1.isMappedToRDBMSTable.name <> rModel2.isMappedToRDBMSTable.name)' validDatabaseReferentialIntegrity='self.hasResourceModel->forAll(rModel1, rModel2 | (rModel1.hasRelatedModelManager.hasRelatedModel = rModel2) implies (self.hasRDBMSTable->forAll(rdbmsTableA, rdbmsTableB | (rModel1.isMappedToRDBMSTable = rdbmsTableA and rModel2.isMappedToRDBMSTable = rdbmsTableB) implies (rModel1.rModelHasProperty->forAll(rModelPropertyA | (rModelPropertyA.isPrimaryIdentifier = true) implies (rdbmsTableB.hasRDBMSColumns->one(isForeignKey = true and name = rModelPropertyA.name and referencesRDBMSTable = rdbmsTableA)))))))' correctlyMatchingRControllerCRUDActivitiesWithRDBMSActivities='self.hasResourceController.rControllerHasCRUDActivity->forAll(rControllerCRUDActivityA | self.hasDatabaseController.hasRDBMSActivity->forAll(rdbmsActivityA | (rControllerCRUDActivityA.isMappedToRDBMSActivity = rdbmsActivityA) implies (self.hasResourceController->one(rControllerHasCRUDActivity = rControllerCRUDActivityA and hasAssociatedRModel.isMappedToRDBMSTable = rControllerCRUDActivityA.isMappedToRDBMSActivity.altersRDBMSTable))))' correctlyMatchingRCManagerCRUDActivitiesWithRDBMSActivities='self.hasResourceControllerManager.rCManagerHasCRUDActivity->forAll(rCManagerCRUDActivityA | self.hasDatabaseController.hasRDBMSActivity->forAll(rdbmsActivityA | (rCManagerCRUDActivityA.isMappedToRDBMSActivity = rdbmsActivityA) implies (self.hasResourceControllerManager->one(rCManagerHasCRUDActivity = rCManagerCRUDActivityA and hasAssociatedRMManager.hasRelatedModel.isMappedToRDBMSTable = rCManagerCRUDActivityA.isMappedToRDBMSActivity.altersRDBMSTable))))' rCManagerCreateActivityAddsReadHypermediaLinkToRRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA | \n\t\tself.hasResourceController->forAll( rControllerA | \n\t\t\t(\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies \n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t)\n\t\t    and \n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t)\n\t\t))' rCManagerCreateActivityAddsUpdateHypermediaLinkToRRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA | \n\t\tself.hasResourceController->forAll( rControllerA | \n\t\t\t(\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies \n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t)\n\t\t    and \n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t)\n\t\t))' rCManagerCreateActivityAddsDeleteHypermediaLinkToRRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA | \n\t\tself.hasResourceController->forAll( rControllerA | \n\t\t\t(\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t\timplies \n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t)\n\t\t    and \n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t)\n\t\t))' rCManagerReadActivityAddsReadHypermediaLinkToRRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA | \n\t\tself.hasResourceController->forAll( rControllerA | \n\t\t\t(\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies  \n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t)\n\t\t    and \n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t)\n\t\t))' rCManagerReadActivityAddsUpdateHypermediaLinkToRRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA | \n\t\tself.hasResourceController->forAll( rControllerA | \n\t\t\t(\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies \n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t)\n\t\t    and \n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t)\n\t\t))' rCManagerReadActivityAddsDeleteHypermediaLinkToRRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA | \n\t\tself.hasResourceController->forAll( rControllerA | \n\t\t\t(\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t\timplies \n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t)\n\t\t    and \n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Child\' and  hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t)\n\t\t))' rCManagerCreateActivityAddsReadHypermediaLinkToParentRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t)\n\t\t))' rCManagerCreateActivityAddsUpdateHypermediaLinkToParentRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t)\n\t\t))' rCManagerCreateActivityAddsDeleteHypermediaLinkToParentRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t\timplies\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t)\n\t\t))' rCManagerReadActivityAddsReadHypermediaLinkToParentRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t)\n\t\t))' rCManagerReadActivityAddsUpdateHypermediaLinkToParentRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t)\n\t\t))' rCManagerReadActivityAddsDeleteHypermediaLinkToParentRController='\n\t\tself.hasResourceControllerManager->forAll(rCManagerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t\timplies\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trCManagerA.rCManagerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\timplies\n\t\t\t\t(rControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager) and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t)\n\t\t))' rControllerReadActivityAddsCreateHypermediaLinkToRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t)\n\t\t))' rControllerReadActivityAddsReadHypermediaLinkToRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t)\n\t\t))' rControllerUpdateActivityAddsCreateHypermediaLinkToRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t)\n\t\t))' rControllerUpdateActivityAddsReadHypermediaLinkToRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedModelManager = rCManagerA.hasAssociatedRMManager and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t)\n\t\t))' rControllerReadActivityAddsCreateHypermediaLinkToParentRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\t\t\t\t\t\t\n\t\t\t)\n\t\t))' rControllerReadActivityAddsReadHypermediaLinkToParentRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1)\t\t\t\t\t\t\n\t\t\t)\n\t\t))' rControllerUpdateActivityAddsCreateHypermediaLinkToParentRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\t\t\t\t\t\t\n\t\t\t)\n\t\t))' rControllerUpdateActivityAddsReadHypermediaLinkToParentRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2)\t\t\t\t\t\t\n\t\t\t)\n\t\t))' rControllerDeleteActivityAddsCreateHypermediaLinkToParentRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 3).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 3).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\t\t\t\t\t\t\n\t\t\t)\n\t\t))' rControllerDeleteActivityAddsReadHypermediaLinkToParentRCManager='\n\t\tself.hasResourceController->forAll( rControllerA |\n\t\tself.hasResourceControllerManager->forAll( rCManagerA |\n\t\t\t(\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\n\t\t\t\timplies\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 3).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t)\n\t\t\tand\n\t\t\t(\n\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 3).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRCManager = rCManagerA)\n\t\t\t\timplies\n\t\t\t\trCManagerA.hasAssociatedRMManager.hasRelatedModel = rControllerA.hasAssociatedRModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3)\t\t\t\t\t\t\n\t\t\t)\n\t\t))' algoControllerActivityAddsHypermediaLinkToRAlgoController='\n\t\tself.hasAlgoResourceController->forAll(algoControllerA, algoControllerB |\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.hasRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists( crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t)' algoControllerAddsHypermediaLinkToParentAlgoController='\n\t\tself.hasAlgoResourceController->forAll(algoControllerA, algoControllerB |\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetAlgoController = algoControllerB)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.hasAssociatedAlgoModel.isRelatedAlgoModel = algoControllerB.hasAssociatedAlgoModel and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerB.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t)' rControllerReadAddsHypermediaLinkToRAlgoController='\n\t\tself.hasAlgoResourceController->forAll(algoControllerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t\n\t\t))' rControllerUpdateAddsHypermediaLinkToRAlgoController='\n\t\tself.hasAlgoResourceController->forAll(algoControllerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 0 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\trControllerA.rControllerHasCRUDActivity->select(crudVerb = 2).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Child\' and hasTargetAlgoController = algoControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t\n\t\t))' algoControllerAddsReadHypermediaLinkToParentRController='\n\t\tself.hasAlgoResourceController->forAll(algoControllerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 1 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 1) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t))' algoControllerAddsUpdateHypermediaLinkToParentRController='\n\t\tself.hasAlgoResourceController->forAll(algoControllerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 2 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 2) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t))' algoControllerAddsDeleteHypermediaLinkToParentRController='\n\t\tself.hasAlgoResourceController->forAll(algoControllerA |\n\t\tself.hasResourceController->forAll(rControllerA |\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 0).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 0)\n\t\t\t\t)\n\t\t\t)\n\t\t\tor\n\t\t\t(\n\t\t\t\t(\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t\timplies\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t)\n\t\t\t\tand\n\t\t\t\t(\n\t\t\t\t\talgoControllerA.algoControllerHasCRUDActivity->select(crudVerb = 1).hasCRUDActivityHandler.hasHypermediaFunction.hasHypermediaLink->one(linkCRUDVerb = 3 and linkType = \'Parent\' and hasTargetRController = rControllerA)\n\t\t\t\t\timplies\n\t\t\t\t\trControllerA.hasAssociatedRModel.hasRelatedAlgoModel = algoControllerA.hasAssociatedAlgoModel and rControllerA.rControllerHasCRUDActivity->exists(crudVerb = 3) and algoControllerA.algoControllerHasCRUDActivity->exists(crudVerb = 1)\n\t\t\t\t)\n\t\t\t)\n\t\t))'"
 * @generated
 */
public interface RESTfulServicePIM extends EObject {
	/**
	 * Returns the value of the '<em><b>Has Resource Model</b></em>' containment reference list.
	 * The list contents are of type {@link ServicePIM.ResourceModel}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Resource Model</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Resource Model</em>' containment reference list.
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasResourceModel()
	 * @model containment="true"
	 * @generated
	 */
	EList<ResourceModel> getHasResourceModel();

	/**
	 * Returns the value of the '<em><b>Has Resource Model Manager</b></em>' containment reference list.
	 * The list contents are of type {@link ServicePIM.ResourceModelManager}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Resource Model Manager</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Resource Model Manager</em>' containment reference list.
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasResourceModelManager()
	 * @model containment="true"
	 * @generated
	 */
	EList<ResourceModelManager> getHasResourceModelManager();

	/**
	 * Returns the value of the '<em><b>Has Resource Controller</b></em>' containment reference list.
	 * The list contents are of type {@link ServicePIM.ResourceController}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Resource Controller</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Resource Controller</em>' containment reference list.
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasResourceController()
	 * @model containment="true"
	 * @generated
	 */
	EList<ResourceController> getHasResourceController();

	/**
	 * Returns the value of the '<em><b>Has Resource Controller Manager</b></em>' containment reference list.
	 * The list contents are of type {@link ServicePIM.ResourceControllerManager}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Resource Controller Manager</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Resource Controller Manager</em>' containment reference list.
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasResourceControllerManager()
	 * @model containment="true"
	 * @generated
	 */
	EList<ResourceControllerManager> getHasResourceControllerManager();

	/**
	 * Returns the value of the '<em><b>Has Algo Resource Model</b></em>' containment reference list.
	 * The list contents are of type {@link ServicePIM.AlgoResourceModel}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Algo Resource Model</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Algo Resource Model</em>' containment reference list.
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasAlgoResourceModel()
	 * @model containment="true"
	 * @generated
	 */
	EList<AlgoResourceModel> getHasAlgoResourceModel();

	/**
	 * Returns the value of the '<em><b>Has Algo Resource Controller</b></em>' containment reference list.
	 * The list contents are of type {@link ServicePIM.AlgoResourceController}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Algo Resource Controller</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Algo Resource Controller</em>' containment reference list.
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasAlgoResourceController()
	 * @model containment="true"
	 * @generated
	 */
	EList<AlgoResourceController> getHasAlgoResourceController();

	/**
	 * Returns the value of the '<em><b>Has RDBMS Table</b></em>' containment reference list.
	 * The list contents are of type {@link ServicePIM.RDBMSTable}.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has RDBMS Table</em>' containment reference list isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has RDBMS Table</em>' containment reference list.
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasRDBMSTable()
	 * @model containment="true"
	 * @generated
	 */
	EList<RDBMSTable> getHasRDBMSTable();

	/**
	 * Returns the value of the '<em><b>Has Database Controller</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Has Database Controller</em>' containment reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Has Database Controller</em>' containment reference.
	 * @see #setHasDatabaseController(DatabaseController)
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_HasDatabaseController()
	 * @model containment="true" required="true"
	 * @generated
	 */
	DatabaseController getHasDatabaseController();

	/**
	 * Sets the value of the '{@link ServicePIM.RESTfulServicePIM#getHasDatabaseController <em>Has Database Controller</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Has Database Controller</em>' containment reference.
	 * @see #getHasDatabaseController()
	 * @generated
	 */
	void setHasDatabaseController(DatabaseController value);

	/**
	 * Returns the value of the '<em><b>Name</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Name</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Name</em>' attribute.
	 * @see #setName(String)
	 * @see ServicePIM.RESTServicePIMPackage#getRESTfulServicePIM_Name()
	 * @model required="true"
	 * @generated
	 */
	String getName();

	/**
	 * Sets the value of the '{@link ServicePIM.RESTfulServicePIM#getName <em>Name</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Name</em>' attribute.
	 * @see #getName()
	 * @generated
	 */
	void setName(String value);

} // RESTfulServicePIM
